let api = [];
const apiDocListSize = 1
api.push({
    name: 'default',
    order: '1',
    list: []
})
api[0].list.push({
    alias: 'FlowApiController',
    order: '1',
    link: '流程服务接口',
    desc: '流程服务接口',
    list: []
})
api[0].list[0].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/api/instance/start',
    desc: '流程启动',
});
api[0].list[0].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/api/instance/cancel',
    desc: '流程撤回',
});
api[0].list[0].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/api/instance/delete',
    desc: '删除撤回',
});
api[0].list[0].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/api/instance/task/claim',
    desc: '领取任务',
});
api[0].list[0].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/api/instance/task/complete',
    desc: '完成提交任务',
});
api[0].list[0].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/api/instance/task/trigger',
    desc: '触发任务（争对Receive Task）',
});
api[0].list.push({
    alias: 'FwModelerInfoController',
    order: '2',
    link: '流程模型信息表_前端控制器',
    desc: '流程模型信息表 前端控制器',
    list: []
})
api[0].list[1].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/modeler/page',
    desc: '分页查询流程模型信息表数据',
});
api[0].list[1].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/modeler/list',
    desc: '列表查询流程模型信息表数据',
});
api[0].list[1].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/modeler/detail',
    desc: '查询流程模型信息表详情数据',
});
api[0].list[1].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/modeler/getById',
    desc: '根据主键ID查询流程模型信息表详情数据',
});
api[0].list[1].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/modeler/save',
    desc: '保存流程模型信息表数据',
});
api[0].list[1].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/modeler/delete',
    desc: '删除流程模型信息表数据',
});
api[0].list.push({
    alias: 'FwProcAttributeController',
    order: '3',
    link: '流程配置信息表_前端控制器',
    desc: '流程配置信息表 前端控制器',
    list: []
})
api[0].list[2].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/attribute/page',
    desc: '分页查询流程配置信息表数据',
});
api[0].list[2].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/attribute/list',
    desc: '列表查询流程配置信息表数据',
});
api[0].list[2].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/attribute/detail',
    desc: '查询流程配置信息表详情数据',
});
api[0].list[2].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/attribute/getById',
    desc: '根据主键ID查询流程配置信息表详情数据',
});
api[0].list[2].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/attribute/save',
    desc: '保存流程配置信息表数据',
});
api[0].list[2].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/attribute/delete',
    desc: '删除流程配置信息表数据',
});
api[0].list.push({
    alias: 'FwProcExceptionController',
    order: '4',
    link: '异常信息表_前端控制器',
    desc: '异常信息表 前端控制器',
    list: []
})
api[0].list[3].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/fwProcException/page',
    desc: '分页查询异常信息表数据',
});
api[0].list[3].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/fwProcException/list',
    desc: '列表查询异常信息表数据',
});
api[0].list[3].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/fwProcException/detail',
    desc: '查询异常信息表详情数据',
});
api[0].list[3].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/fwProcException/getById',
    desc: '根据主键ID查询异常信息表详情数据',
});
api[0].list[3].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/fwProcException/save',
    desc: '保存异常信息表数据',
});
api[0].list[3].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/fwProcException/delete',
    desc: '删除异常信息表数据',
});
api[0].list.push({
    alias: 'FwProcFormController',
    order: '5',
    link: '流程表单信息表_前端控制器',
    desc: '流程表单信息表 前端控制器',
    list: []
})
api[0].list[4].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/form/page',
    desc: '分页查询流程表单信息表数据',
});
api[0].list[4].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/form/list',
    desc: '列表查询流程表单信息表数据',
});
api[0].list[4].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/form/detail',
    desc: '查询流程表单信息表详情数据',
});
api[0].list[4].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/form/getById',
    desc: '根据主键ID查询流程表单信息表详情数据',
});
api[0].list[4].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/form/save',
    desc: '保存流程表单信息表数据',
});
api[0].list[4].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/form/delete',
    desc: '删除流程表单信息表数据',
});
api[0].list[4].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/form/deleteById/{id}',
    desc: '根据主键ID删除流程表单信息表数据',
});
api[0].list.push({
    alias: 'FwProcInfoController',
    order: '6',
    link: '流程定义信息表_前端控制器',
    desc: '流程定义信息表 前端控制器',
    list: []
})
api[0].list[5].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/info/page',
    desc: '分页查询流程定义信息表数据',
});
api[0].list[5].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/info/list',
    desc: '列表查询流程定义信息表数据',
});
api[0].list[5].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/info/detail',
    desc: '查询流程定义信息表详情数据',
});
api[0].list[5].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/info/getById',
    desc: '根据主键ID查询流程定义信息表详情数据',
});
api[0].list[5].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/info/save',
    desc: '保存流程定义信息表数据',
});
api[0].list[5].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/info/delete',
    desc: '删除流程定义信息表数据',
});
api[0].list[5].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/info/copy',
    desc: '拷贝流程定义相关配置从上一个版本获取',
});
api[0].list.push({
    alias: 'FwProcInstController',
    order: '7',
    link: '流程实例信息表_前端控制器',
    desc: '流程实例信息表 前端控制器',
    list: []
})
api[0].list[6].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/inst/page',
    desc: '分页查询流程实例信息表数据',
});
api[0].list[6].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/inst/list',
    desc: '列表查询流程实例信息表数据',
});
api[0].list[6].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/inst/detail',
    desc: '查询流程实例信息表详情数据',
});
api[0].list[6].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/inst/getById',
    desc: '根据主键ID查询流程实例信息表详情数据',
});
api[0].list[6].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/inst/save',
    desc: '保存流程实例信息表数据',
});
api[0].list[6].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/inst/delete',
    desc: '删除流程实例信息表数据',
});
api[0].list.push({
    alias: 'FwProcNodeController',
    order: '8',
    link: 'bpmn节点表_前端控制器',
    desc: 'BPMN节点表 前端控制器',
    list: []
})
api[0].list[7].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/node/page',
    desc: '分页查询BPMN节点表数据',
});
api[0].list[7].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/node/list',
    desc: '列表查询BPMN节点表数据',
});
api[0].list[7].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/node/detail',
    desc: '查询BPMN节点表详情数据',
});
api[0].list[7].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/node/getById',
    desc: '根据主键ID查询BPMN节点表详情数据',
});
api[0].list[7].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/node/save',
    desc: '保存BPMN节点表数据',
});
api[0].list[7].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/proc/node/delete',
    desc: '删除BPMN节点表数据',
});
api[0].list.push({
    alias: 'FwTaskCandidateController',
    order: '9',
    link: '任务节点权限关联表_前端控制器',
    desc: '任务节点权限关联表 前端控制器',
    list: []
})
api[0].list[8].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/candidate/page',
    desc: '分页查询任务节点权限关联表数据',
});
api[0].list[8].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/candidate/list',
    desc: '列表查询任务节点权限关联表数据',
});
api[0].list[8].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/candidate/detail',
    desc: '查询任务节点权限关联表详情数据',
});
api[0].list[8].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/candidate/getById',
    desc: '根据主键ID查询任务节点权限关联表详情数据',
});
api[0].list[8].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/candidate/save',
    desc: '保存任务节点权限关联表数据',
});
api[0].list[8].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/candidate/delete',
    desc: '删除任务节点权限关联表数据',
});
api[0].list.push({
    alias: 'FwTaskHisController',
    order: '10',
    link: '流程任务流转历史表_前端控制器',
    desc: '流程任务流转历史表 前端控制器',
    list: []
})
api[0].list[9].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/his/page',
    desc: '分页查询流程任务流转历史表数据',
});
api[0].list[9].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/his/list',
    desc: '列表查询流程任务流转历史表数据',
});
api[0].list[9].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/his/detail',
    desc: '查询流程任务流转历史表详情数据',
});
api[0].list[9].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/his/getById',
    desc: '根据主键ID查询流程任务流转历史表详情数据',
});
api[0].list[9].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/his/save',
    desc: '保存流程任务流转历史表数据',
});
api[0].list[9].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/task/his/delete',
    desc: '删除流程任务流转历史表数据',
});
api[0].list.push({
    alias: 'DemoController',
    order: '11',
    link: '',
    desc: '',
    list: []
})
api[0].list[10].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/demo/start',
    desc: '',
});
api[0].list[10].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/demo/start2',
    desc: '',
});
api[0].list.push({
    alias: 'FlowWorkbenchController',
    order: '12',
    link: '流程工作台请求处理服务',
    desc: '流程工作台请求处理服务',
    list: []
})
api[0].list[11].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/turn/view',
    desc: '跳转到审批页面',
});
api[0].list[11].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/workbench/audit',
    desc: '流程审核提交',
});
api[0].list.push({
    alias: 'ProcessManageController',
    order: '13',
    link: '流程管理处理服务',
    desc: '流程管理处理服务',
    list: []
})
api[0].list[12].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/page',
    desc: '分页查询流程定义列表',
});
api[0].list[12].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/deploy',
    desc: '新增部署流程定义',
});
api[0].list[12].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/delete',
    desc: '删除部署流程定义',
});
api[0].list[12].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/suspend',
    desc: '挂起流程定义',
});
api[0].list[12].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/active',
    desc: '激活流程定义',
});
api[0].list[12].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/process/diagram',
    desc: '查看流程部署定义图',
});
api[0].list[12].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/process/xml',
    desc: '下载流程xml文件',
});
api[0].list[12].list.push({
    order: '8',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/process/keys',
    desc: '查询流程定义key',
});
api[0].list[12].list.push({
    order: '9',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/getAllUserTask',
    desc: '根据流程定义ID查询所有的人工节点',
});
api[0].list[12].list.push({
    order: '10',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/definition/group/add',
    desc: '新增候选组',
});
api[0].list[12].list.push({
    order: '11',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/page',
    desc: '分页查询流程实例列表',
});
api[0].list[12].list.push({
    order: '12',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/his/page',
    desc: '分页查询流程实例历史列表',
});
api[0].list[12].list.push({
    order: '13',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/start/his/page',
    desc: '分页查询我发起的流程实例历史列表',
});
api[0].list[12].list.push({
    order: '14',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/start/{processDefKey}',
    desc: '启动流程',
});
api[0].list[12].list.push({
    order: '15',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/start',
    desc: '启动流程',
});
api[0].list[12].list.push({
    order: '16',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/cancel',
    desc: '流程撤回',
});
api[0].list[12].list.push({
    order: '17',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/delete',
    desc: '流程作废（删除实例）',
});
api[0].list[12].list.push({
    order: '18',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/list',
    desc: '查询流程实例任务',
});
api[0].list[12].list.push({
    order: '19',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/unassigned',
    desc: '查询未分配代理人的任务（未领取）',
});
api[0].list[12].list.push({
    order: '20',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/claim',
    desc: '领取任务',
});
api[0].list[12].list.push({
    order: '21',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/unclaim',
    desc: '归还领取的任务',
});
api[0].list[12].list.push({
    order: '22',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/delegate',
    desc: '委派任务',
});
api[0].list[12].list.push({
    order: '23',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/assign',
    desc: '指派任务 （指派、转办、转签）任务（分配任务处理人） 转签就是将任务的负责人直接设置为别人。即本来由自己办理，改为别人办理。',
});
api[0].list[12].list.push({
    order: '24',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/incomplete',
    desc: '查询我的待办任务',
});
api[0].list[12].list.push({
    order: '25',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/complete',
    desc: '完成提交任务',
});
api[0].list[12].list.push({
    order: '26',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/completed/his',
    desc: '查询我的已办任务',
});
api[0].list[12].list.push({
    order: '27',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/trigger',
    desc: '触发任务（针对Receive Task）',
});
api[0].list[12].list.push({
    order: '28',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/detail',
    desc: '获取流程任务详情',
});
api[0].list[12].list.push({
    order: '29',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/task/his',
    desc: '查询流程活动流转信息',
});
api[0].list[12].list.push({
    order: '30',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/process/image',
    desc: '查看流程实例进度图片',
});
api[0].list[12].list.push({
    order: '31',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/exception/page',
    desc: '查询所有的作业异常信息',
});
api[0].list[12].list.push({
    order: '32',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/exception/trace',
    desc: '查询作业异常堆栈信息',
});
api[0].list[12].list.push({
    order: '33',
    deprecated: 'false',
    url: 'http://localhost:10000/api/flow/instance/exception/deal',
    desc: '处理异常',
});
document.onkeydown = keyDownSearch;
function keyDownSearch(e) {
    const theEvent = e;
    const code = theEvent.keyCode || theEvent.which || theEvent.charCode;
    if (code === 13) {
        const search = document.getElementById('search');
        const searchValue = search.value.toLocaleLowerCase();

        let searchGroup = [];
        for (let i = 0; i < api.length; i++) {

            let apiGroup = api[i];

            let searchArr = [];
            for (let i = 0; i < apiGroup.list.length; i++) {
                let apiData = apiGroup.list[i];
                const desc = apiData.desc;
                if (desc.toLocaleLowerCase().indexOf(searchValue) > -1) {
                    searchArr.push({
                        order: apiData.order,
                        desc: apiData.desc,
                        link: apiData.link,
                        list: apiData.list
                    });
                } else {
                    let methodList = apiData.list || [];
                    let methodListTemp = [];
                    for (let j = 0; j < methodList.length; j++) {
                        const methodData = methodList[j];
                        const methodDesc = methodData.desc;
                        if (methodDesc.toLocaleLowerCase().indexOf(searchValue) > -1) {
                            methodListTemp.push(methodData);
                            break;
                        }
                    }
                    if (methodListTemp.length > 0) {
                        const data = {
                            order: apiData.order,
                            desc: apiData.desc,
                            link: apiData.link,
                            list: methodListTemp
                        };
                        searchArr.push(data);
                    }
                }
            }
            if (apiGroup.name.toLocaleLowerCase().indexOf(searchValue) > -1) {
                searchGroup.push({
                    name: apiGroup.name,
                    order: apiGroup.order,
                    list: searchArr
                });
                continue;
            }
            if (searchArr.length === 0) {
                continue;
            }
            searchGroup.push({
                name: apiGroup.name,
                order: apiGroup.order,
                list: searchArr
            });
        }
        let html;
        if (searchValue === '') {
            const liClass = "";
            const display = "display: none";
            html = buildAccordion(api,liClass,display);
            document.getElementById('accordion').innerHTML = html;
        } else {
            const liClass = "open";
            const display = "display: block";
            html = buildAccordion(searchGroup,liClass,display);
            document.getElementById('accordion').innerHTML = html;
        }
        const Accordion = function (el, multiple) {
            this.el = el || {};
            this.multiple = multiple || false;
            const links = this.el.find('.dd');
            links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown);
        };
        Accordion.prototype.dropdown = function (e) {
            const $el = e.data.el;
            let $this = $(this), $next = $this.next();
            $next.slideToggle();
            $this.parent().toggleClass('open');
            if (!e.data.multiple) {
                $el.find('.submenu').not($next).slideUp("20").parent().removeClass('open');
            }
        };
        new Accordion($('#accordion'), false);
    }
}

function buildAccordion(apiGroups, liClass, display) {
    let html = "";
    if (apiGroups.length > 0) {
        if (apiDocListSize === 1) {
            let apiData = apiGroups[0].list;
            let order = apiGroups[0].order;
            for (let j = 0; j < apiData.length; j++) {
                html += '<li class="'+liClass+'">';
                html += '<a class="dd" href="#_'+order+'_'+apiData[j].order+'_' + apiData[j].link + '">' + apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
                html += '<ul class="sectlevel2" style="'+display+'">';
                let doc = apiData[j].list;
                for (let m = 0; m < doc.length; m++) {
                    let spanString;
                    if (doc[m].deprecated === 'true') {
                        spanString='<span class="line-through">';
                    } else {
                        spanString='<span>';
                    }
                    html += '<li><a href="#_'+order+'_' + apiData[j].order + '_' + doc[m].order + '_' + doc[m].desc + '">' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + spanString + doc[m].desc + '<span></a> </li>';
                }
                html += '</ul>';
                html += '</li>';
            }
        } else {
            for (let i = 0; i < apiGroups.length; i++) {
                let apiGroup = apiGroups[i];
                html += '<li class="'+liClass+'">';
                html += '<a class="dd" href="#_'+apiGroup.order+'_' + apiGroup.name + '">' + apiGroup.order + '.&nbsp;' + apiGroup.name + '</a>';
                html += '<ul class="sectlevel1">';

                let apiData = apiGroup.list;
                for (let j = 0; j < apiData.length; j++) {
                    html += '<li class="'+liClass+'">';
                    html += '<a class="dd" href="#_'+apiGroup.order+'_'+ apiData[j].order + '_'+ apiData[j].link + '">' +apiGroup.order+'.'+ apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
                    html += '<ul class="sectlevel2" style="'+display+'">';
                    let doc = apiData[j].list;
                    for (let m = 0; m < doc.length; m++) {
                       let spanString;
                       if (doc[m].deprecated === 'true') {
                           spanString='<span class="line-through">';
                       } else {
                           spanString='<span>';
                       }
                       html += '<li><a href="#_'+apiGroup.order+'_' + apiData[j].order + '_' + doc[m].order + '_' + doc[m].desc + '">'+apiGroup.order+'.' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + spanString + doc[m].desc + '<span></a> </li>';
                   }
                    html += '</ul>';
                    html += '</li>';
                }

                html += '</ul>';
                html += '</li>';
            }
        }
    }
    return html;
}